var fs = require('fs')

function pReadFile(filePath) {
    return new Promise(function (resolve,reject) {
        fs.readFile(filePath,'utf8',function (err,data) {
            if (err) {
                reject(err)
            } else {
                resolve(data)
            }
        })
    })
}

pReadFile('./data/a.txt')
    .then(function (data) {
        console.log('a.txt')
        console.log(data)
        return pReadFile('./data/b.txt')
    })
    .then(function (data) {
        console.log('b.txt')
        console.log(data)
        return pReadFile('./data/c.txt')
    })
    .then(function (data) {
        console.log('c.txt')
        console.log(data)
    })





    // ========================================================

    function get(url,callback){
        var oReq = new XMLHttpRequest()
        // 当请求加载成功之后调用指定的函数
        oReq.onload = function (){
            // 我现在需要得到这里的 oReq.response.Text
            callback(OReq.response.Text)
        }

        oReq.open('get',url,true)
        oReq.send()
    }


    get('data.json',function (data){
        console.log(data)
    })

// ==================================================
// 使用promise改造get请求

    function pGet(url) {
        return new Promise(function (resolve,reject) {
            var oReq = new XMLHttpRequest()
            // 当请求加载成功之后调用指定的函数
            oReq.onload = function (){
                // 我现在需要得到这里的 oReq.response.Text
                // callback(OReq.response.Text)
                resolve(oReq.responseText)
            }

            oReq.onerror = function (err) {
                reject(err)
            }
    
            oReq.open('get',url,true)
            oReq.send()
        })
    }

    // 调用
    var data = {}
    pGet('http://127.0.0.1:3000/users/4')
        .then(function (user) {
            data.user = user
            return pGet('http://127.0.0.1:3000/jobs')
        })
        .then(function (data) {
            data.jobs = jobs
            var htmlStr = template('tpl',data)
            document.querySelector('#user_form').innerHTML = htmlStr
        })


    // ==========================================
    // 将PGet（URL）===> pGet(url,callback)
    // 使得pGet 方法支持promise的链式编程，也可以支持callback的回调嵌套函数编程
